作为测试人员要出一份测试记录,测试记录文档要在测试用例增加一些内容,包括:执行结果、
执行状态、测试人员、测试时间、实测结果。每一条用例都要增加以上的内容,而且一个测试记录文档几百条用例,全都是重复工作,word自带的替换不能替换两个不同单元格里的内容,用python的docx库写了个脚本
第一层for循环遍历文档里所有表格,在遍历每一个单元格,识别到单元格内容为
执行结果、执行状态、测试人员、测试时间 就在边上的单元格写内容。识别到单元格内容为 实测结果,就列数+1,判断一下是否为空,为空就写 与实测结果一致。
执行完脚本后就把所有的测试用例空白的内容填写好
from docx import Document
from docx.shared import Inches
import os,re
def xiugai():
tables=document.tables
for tb in document.tables:
ii=0
jj=0
for i in tb.rows:
jj=0
for j in tb.columns:
try:
if tb.cell(ii,jj).text == "执行结果":
cc=jj+1
if len(tb.cell(ii,cc).text)==0:
tb.cell(ii,cc).text = ("通过")
print(ii,jj,tb.cell(ii,jj).text)
elif tb.cell(ii,jj).text == "执行状态":
cc=jj+1
if len(tb.cell(ii,cc).text)==0:
tb.cell(ii,cc).text = ("已执行")
print(ii,jj,tb.cell(ii,jj).text)
elif tb.cell(ii,jj).text == "测试人员":
cc=jj+1
if len(tb.cell(ii,cc).text)==0:
tb.cell(ii,cc).text = ("aa")
print(ii,jj,tb.cell(ii,jj).text)
elif tb.cell(ii,jj).text == "测试时间":
cc=jj+1
if len(tb.cell(ii,cc).text)==0:
tb.cell(ii,cc).text = ("2022年4月18日")
print(ii,jj,tb.cell(ii,jj).text)
except:
print("error")
tb.cell(ii-1,jj-1).text = ("error")
break
if jj<len(tb.columns)-1:
jj=jj+1
if ii<len(tb.rows)-1:
ii=ii+1
def shicejieguo():
tables=document.tables
for tb in document.tables:
ii=0
jj=0
for i in tb.rows:
jj=0
for j in tb.columns:
try:
if tb.cell(ii,jj).text == "实测结果":
for dd in range(100):
cc=ii+dd+1
if len(tb.cell(cc,jj).text)==0:
tb.cell(cc,jj).text = ("与期望结果一致")
print(cc,jj,tb.cell(ii,jj).text)
else:
break
except:
print("error")
tb.cell(ii-1,jj-1).text = ("error")
break
if jj<len(tb.columns)-1:
jj=jj+1
if ii<len(tb.rows)-1:
ii=ii+1
if __name__ == "__main__":
document = Document(r'C:\Users\Desktop\记录.docx')
shicejieguo()
xiugai()
document.save('修改后的报告.docx')